// File:    Medico.cs
// Author:  mespinozas
// Created: jueves, 10 de octubre de 2013 15:10:08
// Purpose: Definition of Class Medico

using System;

public class Medico : Funcionario
{
   public string especialidadMedico;
   
   public System.Collections.Generic.List<AtencionMedica> atencionDeEncargado;
   
   /// <summary>
   /// Property for collection of AtencionMedica
   /// </summary>
   /// <pdGenerated>Default opposite class collection property</pdGenerated>
   public System.Collections.Generic.List<AtencionMedica> AtencionDeEncargado
   {
      get
      {
         if (atencionDeEncargado == null)
            atencionDeEncargado = new System.Collections.Generic.List<AtencionMedica>();
         return atencionDeEncargado;
      }
      set
      {
         RemoveAllAtencionDeEncargado();
         if (value != null)
         {
            foreach (AtencionMedica oAtencionMedica in value)
               AddAtencionDeEncargado(oAtencionMedica);
         }
      }
   }
   
   /// <summary>
   /// Add a new AtencionMedica in the collection
   /// </summary>
   /// <pdGenerated>Default Add</pdGenerated>
   public void AddAtencionDeEncargado(AtencionMedica newAtencionMedica)
   {
      if (newAtencionMedica == null)
         return;
      if (this.atencionDeEncargado == null)
         this.atencionDeEncargado = new System.Collections.Generic.List<AtencionMedica>();
      if (!this.atencionDeEncargado.Contains(newAtencionMedica))
         this.atencionDeEncargado.Add(newAtencionMedica);
   }
   
   /// <summary>
   /// Remove an existing AtencionMedica from the collection
   /// </summary>
   /// <pdGenerated>Default Remove</pdGenerated>
   public void RemoveAtencionDeEncargado(AtencionMedica oldAtencionMedica)
   {
      if (oldAtencionMedica == null)
         return;
      if (this.atencionDeEncargado != null)
         if (this.atencionDeEncargado.Contains(oldAtencionMedica))
            this.atencionDeEncargado.Remove(oldAtencionMedica);
   }
   
   /// <summary>
   /// Remove all instances of AtencionMedica from the collection
   /// </summary>
   /// <pdGenerated>Default removeAll</pdGenerated>
   public void RemoveAllAtencionDeEncargado()
   {
      if (atencionDeEncargado != null)
         atencionDeEncargado.Clear();
   }
   public System.Collections.Generic.List<AtencionMedica> atencionDeAnestesista;
   
   /// <summary>
   /// Property for collection of AtencionMedica
   /// </summary>
   /// <pdGenerated>Default opposite class collection property</pdGenerated>
   public System.Collections.Generic.List<AtencionMedica> AtencionDeAnestesista
   {
      get
      {
         if (atencionDeAnestesista == null)
            atencionDeAnestesista = new System.Collections.Generic.List<AtencionMedica>();
         return atencionDeAnestesista;
      }
      set
      {
         RemoveAllAtencionDeAnestesista();
         if (value != null)
         {
            foreach (AtencionMedica oAtencionMedica in value)
               AddAtencionDeAnestesista(oAtencionMedica);
         }
      }
   }
   
   /// <summary>
   /// Add a new AtencionMedica in the collection
   /// </summary>
   /// <pdGenerated>Default Add</pdGenerated>
   public void AddAtencionDeAnestesista(AtencionMedica newAtencionMedica)
   {
      if (newAtencionMedica == null)
         return;
      if (this.atencionDeAnestesista == null)
         this.atencionDeAnestesista = new System.Collections.Generic.List<AtencionMedica>();
      if (!this.atencionDeAnestesista.Contains(newAtencionMedica))
      {
         this.atencionDeAnestesista.Add(newAtencionMedica);
         newAtencionMedica.AddAnestesista(this);      
      }
   }
   
   /// <summary>
   /// Remove an existing AtencionMedica from the collection
   /// </summary>
   /// <pdGenerated>Default Remove</pdGenerated>
   public void RemoveAtencionDeAnestesista(AtencionMedica oldAtencionMedica)
   {
      if (oldAtencionMedica == null)
         return;
      if (this.atencionDeAnestesista != null)
         if (this.atencionDeAnestesista.Contains(oldAtencionMedica))
         {
            this.atencionDeAnestesista.Remove(oldAtencionMedica);
            oldAtencionMedica.RemoveAnestesista(this);
         }
   }
   
   /// <summary>
   /// Remove all instances of AtencionMedica from the collection
   /// </summary>
   /// <pdGenerated>Default removeAll</pdGenerated>
   public void RemoveAllAtencionDeAnestesista()
   {
      if (atencionDeAnestesista != null)
      {
         System.Collections.ArrayList tmpAtencionDeAnestesista = new System.Collections.ArrayList();
         foreach (AtencionMedica oldAtencionMedica in atencionDeAnestesista)
            tmpAtencionDeAnestesista.Add(oldAtencionMedica);
         atencionDeAnestesista.Clear();
         foreach (AtencionMedica oldAtencionMedica in tmpAtencionDeAnestesista)
            oldAtencionMedica.RemoveAnestesista(this);
         tmpAtencionDeAnestesista.Clear();
      }
   }

}